#ifndef _WX_COLLAPSABLE_PANEL_H_GTK_
#define _WX_COLLAPSABLE_PANEL_H_GTK_

#include "wx/generic/collpaneg.h"

// ----------------------------------------------------------------------------
// wxCollapsiblePane
// ----------------------------------------------------------------------------

class wxCollapsiblePane : public wxGenericCollapsiblePane {
  public:
    wxCollapsiblePane() { Init(); }

    wxCollapsiblePane( wxWindow *parent,
                       wxWindowID winid,
                       const wxString& label,
                       const wxPoint& pos = wxDefaultPosition,
                       const wxSize& size = wxDefaultSize,
                       long style = wxCP_DEFAULT_STYLE,
                       const wxValidator& val = wxDefaultValidator,
                       const wxString& name = wxCollapsiblePaneNameStr ) {
      Init();
      Create( parent, winid, label, pos, size, style, val, name );
    }

    void Init() {
      m_bIgnoreNextChange = false;
    }

    bool Create( wxWindow *parent,
                 wxWindowID winid,
                 const wxString& label,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
                 long style = wxCP_DEFAULT_STYLE,
                 const wxValidator& val = wxDefaultValidator,
                 const wxString& name = wxCollapsiblePaneNameStr );

    void Collapse( bool collapse = true );
    bool IsCollapsed() const;
    void SetLabel( const wxString &str );

  protected:
    virtual wxSize DoGetBestSize() const;

  public:     // used by GTK callbacks
    bool m_bIgnoreNextChange;
    wxSize m_szCollapsed;

  private:
    void OnSize( wxSizeEvent& );

    DECLARE_DYNAMIC_CLASS( wxCollapsiblePane )
    DECLARE_EVENT_TABLE()
};

#endif // _WX_COLLAPSABLE_PANEL_H_GTK_
